package com.xyy.saas.payment.adpater.pingxx.constants;

/**
 * @author chenshuyi
 * @date 2019/10/24 14:49
 */
public interface WithdrawalConstants {

    /**类型：string；提现对象 ID，由 Ping++ 生成。 */
    public static String ID = "id";

    /**类型：string；值为 "withdrawal"。 */
    public static String OBJECT = "object";

    /**类型：string；对应 app 对象的 id，查看 如何获取App ID。 */
    public static String APP = "app";

    /**综述：类型：int；提现扣除的余额，单位为分。 */
    /**入参：类型：int；提现扣除的余额，单位为分，取值范围 1~1000000000。 */
    public static String AMOUNT = "amount";

    /**类型：string；关联的 asset_transaction 对象的 id。 */
    public static String ASSET_TRANSACTION = "asset_transaction";

    /**类型：string；关联的 balance_transaction 对象的 id。 */
    public static String BALANCE_TRANSACTION = "balance_transaction";

    /**类型：string；提现使用的付款渠道：wx（微信 App）、wx_pub（微信 JSAPI）、wx_lite（微信小程序）、alipay（支付宝）、 unionpay（银联）、allinpay（通联）、jdpay（京东）和 chanpay（畅捷代付）。此外，还支持使用自定义渠道 custom，该渠道不需要真实付款，并在确认提现时同步返回成功结果。 */
    public static String CHANNEL = "channel";

    /**类型：timestamp；创建时间，用 Unix 时间戳表示。 */
    public static String CREATED = "created";

    /**综述：类型：string；附加说明，最多 60 个 Unicode 字符。 */
    /**入参：类型：string；附加说明，最多 60 个 Unicode 字符。渠道为 jdpay、alipay、unionpay、wx、wx_pub、wx_lite 时，最多 60 个字节或 20 个 Unicode 字符；渠道为 allinpay 时，最多 30 个 Unicode 字符。 */
    public static String DESCRIPTION = "description";

    /**类型：hash；附加参数，提现付款的相关信息。 */
    public static String EXTRA = "extra";

    /**类型：string；错误消息的描述。 */
    public static String FAILURE_MSG = "failure_msg";

    /**类型：int；手续费，可能是渠道/银行收取。 */
    public static String FEE = "fee";

    /**类型：boolean；是否处于 live 模式。 */
    public static String LIVEMODE = "livemode";

    /**类型：string；支付宝批量付款 URL。 */
    public static String OPERATION_URL = "operation_url";

    /**综述：类型：string；提现的商户订单号。 */
    /**入参：类型：string；提现使用的商户订单号。wx/wx_pub/wx_lite 规定为 1 ~ 32 位不能重复的数字字母组合; alipay 为 1 ~ 64 位不能重复的数字字母组合;unionpay 为 1 ~ 16 位的纯数字; allinpay 为 20 ~ 40 位不能重复的数字字母组合，必须以签约的通联的商户号开头（建议组合格式：通联商户号 + 时间戳 + 固定位数顺序流水号，不包含+号）。 */
    public static String ORDER_NO = "order_no";

    /**类型：string；关联的 transfer 对象的 id。 */
    public static String SOURCE = "source";

    /**综述：类型：string；提现状态，已申请：created，处理中：pending，完成：succeeded，失败：failed，取消：canceled。 */
    /**入参：类型：string；取值范围：确认为 pending，取消为 canceled。 */
    public static String STATUS = "status";

    /**类型：timestamp；提现取消时间，用 Unix 时间戳表示。 */
    public static String TIME_CANCELED = "time_canceled";

    /**类型：timestamp；提现成功时间，用 Unix 时间戳表示。 */
    public static String TIME_SUCCEEDED = "time_succeeded";

    /**综述：类型：string；提现关联 user 对象的 id。 */
    /**入参：类型：string；user 对象的 id。 */
    public static String USER = "user";

    /**类型：int；需要用户承担的手续费，单位为分。 */
    public static String USER_FEE = "user_fee";

    /**综述：类型：string；提现使用的 settle_account 对象的 id。 */
    /**入参：类型：string；用户结算账户 settle_account 对象 ID。传入此参数时将使用结算账户提现，不需要填写 extra 参数。同时填写 extra 时，此参数不生效。 */
    public static String SETTLE_ACCOUNT = "settle_account";

    /**类型：hash；详见 元数据。 */
    public static String METADATA = "metadata";

    /**类型：string；对应 app 对象的 id，该参数仅需要填写在请求地址内，查看 如何获取App ID。 */
    public static String APP_ID = "APP_ID";

    /**类型：string；提现对象的 id，该参数仅需要填写在请求地址内。 */
    public static String WITHDRAWAL_ID = "WITHDRAWAL_ID";

}
